import { mount } from 'vue-test-utils'
import button from 'src/views/button/src/button.vue'

describe('button', () => {
  it('基础渲染用例: { dom , class }', () => {
    // 使用mount可以创建一个包涵被挂载和渲染的一个实例
    const vm = mount(button, {})
    expect(vm.contains('el-button')).to.be.equal(true)
    expect(vm.classes().includes('x-button')).to.be.equal(true)
  })
  it('基本属性用例: { status, target, dictNode, power }', () => {
    // 使用mount可以创建一个包涵被挂载和渲染的一个实例
    const vm = mount(button, {})
    // dictNode
    vm.setData({ dictNode: 'string' })
    expect(vm.vm.dictNode).to.be.equal('string')
    // power
    vm.setData({ power: 'string' })
    expect(vm.vm.power).to.be.equal('string')
    // status
    vm.setData({ status: 'string' })
    expect(vm.vm.status).to.be.equal('string')
    vm.setData({ status: [] })
    expect(Array.isArray(vm.vm.status)).to.be.equal(true)
    // target
    vm.setData({ target: 'string' })
    expect(vm.vm.target).to.be.equal('string')
    vm.setData({ target: [] })
    expect(Array.isArray(vm.vm.target)).to.be.equal(true)
    vm.setData({ target: {} })
    expect(vm.vm.target instanceof Object).to.be.equal(true)
  })

  it('事件用例 click', async () => {
    // 使用mount可以创建一个包涵被挂载和渲染的一个实例
    const vm = mount(button, {})
    await vm.trigger('click')
  })
})
